Field of the Invention
The present invention relates to software development and more particularly to code completion in an integrated development environment (IDE) of a software development tool.
Description of the Related Art
Software development has evolved from the primitive specification of program code on punch cards to a source code file driven compilation and build workflow. Early, simplistic software development projects involved a single developer coding to a specification on a single development computer using a text editor to access a source code file and separate compile and build programs processing the source code file into an executable binary. As the complexity of the computer program grew in parallel to the growth of computing power, software development evolved into a multi-developer endeavor requiring sophisticated source code management and debugging tools to corral and coordinate the efforts of the developers.
Principal to the modern software development workflow is the integrated development environment (IDE). Initially introduced as the primary user interface to a particular coding language such as the venerable PASCAL or ubiquitous C++ and Java programming languages, the IDE has morphed into its own stand-alone computing product and now, is more akin to a high end word processor coupled to a document management enterprise system rather than a user interface to a hodge-podge of coding and debugging tools. To wit, central to the IDE of many advanced development tools is the inclusion of an auto-completion feature.
Auto-completion of source code is also known as code completion. The auto-complete feature involves the prediction of a word or phrase intended to be input by a user without the user actually typing the word or phrase completely. This feature is effective when it is easy to predict the word being typed based upon those words already typed, such as when there are a limited number of possible or commonly used words. In a source code editor auto-complete is greatly simplified by the regular structure of the programming languages. There are usually only a limited number of words meaningful in the current context or namespace, such as names of variables and functions.
Generally an auto-completion feature involves a display of a pop-up list of possible completions for the currently input prefix to allow the user to choose the right one. This is particularly useful in object-oriented programming because often the programmer will not know exactly what members a particular class has. Therefore, auto-complete then serves as a form of convenient documentation as well as an input method. In any event, while auto-complete is effective for recalling a class once a portion of the classname has been provided, auto-complete will not be helpful in the circumstance where the class name is completely unknown to the end user.